<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Moudle语法</title>
</head>

<body>
    <script>
        // 适用场景
        // 1、按需加载 import('/dialogBox.js'))

        // 2、条件加载 可以放在if 代码块


        //Module 的 加载实现


        // ES6 里的Module是使用  import  export 

        // CommonJS 模块 使用的是 require  和  moudle.exports属性


        // 鉴于以上 以后前端项目使用选择直接使用 ES6 的 import export 组合

        // 3、Node.js 的模块加载方法
        /**

        JavaScript 现在有两种模块，一种是ES6模块，简称ESM; 另一种是CommonJS 模块 简称CJS 。

        CommonJS 模块是Node.js 专用，与ES6 模块不兼容。语法上两者最明显的差异是 CommonJS 模块使用 require()和 module.exports ,ES6 使用 import 和 export
        他们采用不用的加载方案，从Node.js V13.2 版本开始，Node.js 已经默认打开了ES6 模块支持。

        package.json 的main 字段
        package.json 文件有两个字段可以指定模块的入口文件：main和exports 比较简单的模块，可以只是用main 字段，指定模块加载的文件入口
        {
         "type": "module",
          "main": "./src/index.js"
        }
        exports字段的优先级高于main字段。它有多种用法。
        exports字段的优先级高于main 字段 他有多种用法
        
        */
    </script>
</body>

</html>